package br.com.sap.persistencia.servico;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import br.com.sap.modelo.Entidade;
import br.com.sap.modelo.Usuario;
import br.com.sap.modelo.enums.EnumSituacao;
import br.com.sap.modelo.enums.EnumTipo;

public class UsuarioServico extends ServicoGenerico<Usuario> {
	
	private Usuario usuario;
	private CidadeServico cidadeServico = new CidadeServico();
	private EstadoServico estadoServico = new EstadoServico();
		
	@Override
	protected Entidade getInstanciaEntidade() {
		if (this.usuario == null)
			this.usuario = new Usuario();
		return this.usuario;
	}

	@Override
	public ArrayList<Usuario> getLista() {
		// TODO Auto-generated method stub
		return super.getLista(false);
	}
	
		@Override
	public ArrayList<Usuario> procura() {
		// TODO Auto-generated method stub
		return super.procura(false);
	}

	@Override
	protected Usuario configuraCampos(ResultSet rs) throws SQLException {
		Usuario entidade = new Usuario();
		entidade.setId(rs.getLong("id"));
		entidade.setCelular(rs.getString("celular"));
		entidade.setEmail(rs.getString("email"));
		entidade.setNome(rs.getString("nome"));
		entidade.setSobrenome(rs.getString("sobrenome"));
		entidade.setPrimeiroLogin(rs.getBoolean("primeiro_login"));
		entidade.setSenha(rs.getString("senha"));
		entidade.setSenhacriptografada(rs.getString("senhacriptografada"));
		entidade.setCodigoativacao(rs.getString("codigoativacao"));
		entidade.setSituacao(EnumSituacao.get(rs.getInt("situacao")));
		entidade.setStatus(rs.getInt(entidade.getCampoInativacao()));
		entidade.setTelefone(rs.getString("telefone"));
		entidade.setTipo(EnumTipo.get(rs.getInt("tipo")));
		entidade.setSexo(rs.getInt("sexo"));
		entidade.setDatadenascimento(rs.getDate("datadenascimento"));
		entidade.setEstado(estadoServico.getById(rs.getLong("estado_id")));
		entidade.setCidade(cidadeServico.getById(rs.getLong("cidade_id")));		
		entidade.setEndereco(rs.getString("Endereco"));
		entidade.setBairro(rs.getString("bairro"));
		entidade.setCep(rs.getString("cep"));
		return entidade;
	}
 
}
 
